# include<iostream>
# include<memory>


int main(){
    auto a = 10;
    auto name = "asdadasdad";
    std::cout << a << std::endl;
    auto str = std::make_shared<std::string>("asdasdasdasd");  //共享指针使用模板类
    std::cout << *str << std::endl;
    std::cout << name << std::endl;
    std::cout << "str使用的次数" <<str.use_count() << "指向内存地址" << str.get()<< std::endl;  // 打印引用计数，每次调研引用计数都会加一，当引用计数为0时，释放内存
    auto str2 = str;
    std::cout << "str2使用的次数" <<str2.use_count() << "指向内存地址" << str2.get()<< std::endl;  // 打印引用计数，每次调研引用计数都会加一，当引用计数为0时，释放内存
    std::cout << "str使用的次数" <<str.use_count() << "指向内存地址" << str.get()<< std::endl;  // 打印引用计数，每次调研引用计数都会加一，当引用计数为0时，释放内存
    str.reset(); //释放后，str1的引用计数为0，释放内存
    std::cout << "str使用的次数" <<str.use_count() << "指向内存地址" << str.get()<< std::endl;  // 打印引用计数，每次调研引用计数都会加一，当引用计数为0时，释放内存
    std::cout << "str使用的次数" <<str.use_count() << "指向内存地址" << str.get()<< std::endl;  // 打印引用计数，每次调研引用计数都会加一，当引用计数为0时，释放内存
    return 0;
}